package com.jy.app.lib.commontools;

/**
 * Imageloader的简单封装
 * Created by jan on 2016/5/7.
 */
public class ImageLoaderHelper {
//
//    public static final int EMPTY_IMAGE_URI_ID = R.mipmap.pic_page_nodata;
//    public static final int FAIL_IMAGE_URI_ID = R.mipmap.pic_page_nodata;
//    public static final int LOADING_IMAGE_URI_ID = R.mipmap.pic_page_nodata;
//    //默认的DisplayImageOptions
//    public static final int OPTIONS_DEFAULT = 1;
//    //通用的类型
//    public static final int OPTIONS_USUAL = 2;
//    //自定义的
//    public static final int OPTIONS_CUSTOM = 3;
//    public static final int OPTIONS_NULL = 4;
//    private static ImageLoaderHelper instance = null;
//    private static ImageLoader mImageLoader = null;
//    private Context context;
//    private static String CACHE_PATH = null;
//    private static String CACHE_FILE_NAME = "image_cache";
//    private DisplayImageOptions imageOptions;
//    private DisplayImageOptions customOptions;
//
//    public ImageLoaderHelper(Context context){
//        this.context = context;
//        mImageLoader = ImageLoader.getInstance();
//    }
//
//    public ImageLoader getmImageLoader(){
//        return mImageLoader;
//    }
//
//    /**
//     * 设置一个图片加载时的选项
//     */
//    private void initUsualImageOptions(){
//        if(imageOptions==null){
//            imageOptions = new DisplayImageOptions.Builder()
//                    .showImageForEmptyUri(EMPTY_IMAGE_URI_ID)
//                    .showImageOnFail(FAIL_IMAGE_URI_ID)
//                    .showImageOnLoading(LOADING_IMAGE_URI_ID)
//                    .cacheOnDisk(true)
//                    .cacheInMemory(false)
//                    .build();
//        }
//    }
//
//    private DisplayImageOptions getDefaultImageOptions(){
//       return new DisplayImageOptions.Builder()
//                .cacheOnDisk(true)
//                .cacheInMemory(true)
//                .build();
//    }
//
//    public void setCustomOptions(int emptyImageId,int failImageId){
//        customOptions = new DisplayImageOptions.Builder()
//                .showImageForEmptyUri(emptyImageId)
//                .showImageOnFail(failImageId)
//                .cacheOnDisk(true)
//                .cacheInMemory(true)
//                .build();
//    }
//
//    /**
//     * 初始化imageloade的配置参数
//     */
//    public void initImageLoader() {
//        CACHE_PATH = FileUtils.getAppCacheDirWithSuffix(context,CACHE_FILE_NAME);
//        File cacheFile = new File(CACHE_PATH);
//        // This configuration tuning is custom. You can tune every option, you may tune some of them,
//        // or you can create default configuration by
//        //  ImageLoaderConfiguration.createDefault(this);
//        // method.
//
//        DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
//                .cacheInMemory(false).imageScaleType(ImageScaleType.EXACTLY)
//                .cacheOnDisk(true).build();
//        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
//                context)
//                .threadPoolSize(3)
//// default
//                .memoryCacheExtraOptions(480, 800)
//                .threadPriority(Thread.NORM_PRIORITY - 2)
//                .denyCacheImageMultipleSizesInMemory()
//                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
//                .tasksProcessingOrder(QueueProcessingType.LIFO)
//                .denyCacheImageMultipleSizesInMemory()
//// .memoryCache(new LruMemoryCache((int) (6 * 1024 * 1024)))
//                .memoryCache(new WeakMemoryCache())
//                .memoryCacheSize((int) (2 * 1024 * 1024))
//                .memoryCacheSizePercentage(13)
//// default
//                .diskCache(new UnlimitedDiskCache(cacheFile))
//// default
//                .diskCacheSize(50 * 1024 * 1024).diskCacheFileCount(100)
//                .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
//                .defaultDisplayImageOptions(defaultOptions).writeDebugLogs() // Remove
//                .build();
//
////        config.writeDebugLogs(); // Remove for release app
//        // Initialize ImageLoader with configuration.
//        mImageLoader = ImageLoader.getInstance();
//        mImageLoader.init(config);
//    }
//
//    /**
//     * 设置ImageView图片
//     * @param imageView
//     * @param url
//     */
//    public void displayImage(ImageView imageView,String url){
//        displayImage(imageView,url,OPTIONS_NULL);
//    }
//
//    public void displayImageCache(ImageView imageView,String url){
//        DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(false)
////                .bitmapConfig(Bitmap.Config.RGB_565).imageScaleType(ImageScaleType.EXACTLY)
//                .cacheOnDisk(true).build();
//        displayImage(imageView,url,options);
//    }
//
//    public void displayImageCache8(ImageView imageView,String url){
//        DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(false)
//                .bitmapConfig(Bitmap.Config.ALPHA_8).imageScaleType(ImageScaleType.EXACTLY)
//                .cacheOnDisk(true).build();
//        displayImage(imageView,url,options);
//    }
//
//    public void displayImage(ImageView imageView,String url,int optionType){
////        LogUtil.i("displayImage imageUrl="+url);
//        switch (optionType){
//            case OPTIONS_DEFAULT:
//                displayImage(imageView,url,getDefaultImageOptions());
//                break;
//            case OPTIONS_USUAL:
//                initUsualImageOptions();
//                displayImage(imageView,url,imageOptions);
//                break;
//            case OPTIONS_CUSTOM:
//                if(customOptions==null){
//                    throw new RuntimeException("customOptions is null,please setCustomOptions function ");
//                }else {
//                    displayImage(imageView,url,customOptions);
//                }
//                break;
//            case OPTIONS_NULL:
//                displayImage(imageView,url,null);
//                break;
//        }
//    }
//
//    public void displayImage(ImageView imageView, String url, int optionType, final LoadListener listener){
//            mImageLoader.displayImage(url, imageView, null, new ImageLoadingListener() {
//                @Override
//                public void onLoadingStarted(String s, View view) {
//
//                }
//
//                @Override
//                public void onLoadingFailed(String s, View view, FailReason failReason) {
//                    listener.onFailed(view);
//                }
//
//                @Override
//                public void onLoadingComplete(String s, View view, Bitmap bitmap) {
//                    listener.onSucces(view);
//                }
//
//                @Override
//                public void onLoadingCancelled(String s, View view) {
//
//                }
//            });
//    }
//
//    public void displayImage(ImageView imageView, String url, DisplayImageOptions options){
//        if(options!=null){
//            mImageLoader.displayImage(url,imageView,options);
//        }else {
//            mImageLoader.displayImage(url,imageView);
//        }
//    }
//
//    public void displayImageCache(ImageView imageView, String url,ImageLoadingListener listener){
//        DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(false)
////                .bitmapConfig(Bitmap.Config.RGB_565).imageScaleType(ImageScaleType.EXACTLY)
//                .cacheOnDisk(true).build();
//        mImageLoader.displayImage(url,imageView,options,listener);
//    }
//
//
//    public void displayImageCache8(ImageView imageView, String url,ImageLoadingListener listener){
//        DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(false)
//                .bitmapConfig(Bitmap.Config.ALPHA_8).imageScaleType(ImageScaleType.EXACTLY)
//                .cacheOnDisk(true).build();
//        mImageLoader.displayImage(url,imageView,options,listener);
//    }
//
//
//    public void displayImage(ImageView imageView, String url, DisplayImageOptions options,ImageLoadingListener listener){
//        if(options!=null){
//            mImageLoader.displayImage(url,imageView,options,listener);
//        }else {
//            mImageLoader.displayImage(url,imageView,listener);
//        }
//    }
//
//
//    /**
//     *  给ImageView设置程序中的drawable资源
//     * @param imageView
//     * @param resId
//     */
//    public void displayImageByDrawable(ImageView imageView,int resId){
//        String url = "drawable://"+resId;
//        DisplayImageOptions options = getDefaultImageOptions();
//        displayImage(imageView,url,options);
//    }
//
//    /**
//     *  给ImageView设置程序中的drawable资源
//     * @param imageView
//     * @param resId
//     */
//    public void displayImageByDrawable(ImageView imageView,int resId,int failImage){
//        String url = "drawable://"+resId;
//        setCustomOptions(failImage,failImage);
//        displayImage(imageView,url,customOptions);
//    }
//
//    /**
//     * 从sd卡中的图片资源设置到imageview中
//     * @param imageView
//     * @param filePath
//     */
//    public void displayImageBySD(ImageView imageView,String filePath){
//        String url = "file:///"+filePath;
//        DisplayImageOptions options = getDefaultImageOptions();
//        displayImage(imageView,url,options);
//    }
//
//    public void displayImageBySD(ImageView imageView,String filePath,int loadingImage){
//        String url = "file:///"+filePath;
//        setCustomOptions(loadingImage,loadingImage);
//        displayImage(imageView,url,customOptions);
//    }
//
//    public Bitmap getBitmapSyloadImageSyncnc(String url){
//        return mImageLoader.loadImageSync(url);
//    }
//    public void displayImageByNetWork(ImageView imageView,String filePath,int loadingImage,ImageLoadingListener listener){
//        setCustomOptions(loadingImage,loadingImage);
//        displayImage(imageView,filePath,customOptions,listener);
//    }
//
//    public void resetOptions(){
//        customOptions = null;
//    }
//
//    public interface LoadListener{
//        public void onFailed(View view);
//        public void onSucces(View view);
//    }
}
